package com.kaifamiao.lambda;

import java.util.Arrays;

public class ConverterTest {

    public static void main(String[] args) {

        /*
        Converter c = new Converter() {
            @Override
            public String convert(int integer, int radix) {
                String s = Integer.toString( integer, radix );
                System.out.printf("%d的%d进制形式为%s\n", integer, radix, s );
                return s.toUpperCase();
            }
        };
        */

        // 等号之后的 语句即为 lambda-expression
        // 等号之前的 c 的类型就是 lambda-expression 的 目标类型
        // Converter c = (integer,radix) -> Integer.toString( integer, radix );

        // 采用形如 `类名::类方法名` 形式来引用类方法
        Converter c = Integer::toString;

        // 获得引用变量 c 所指向的 Converter实例 的类型
        Class cla = c.getClass();
        System.out.println( cla.getName() );
        // 获得 cla 所表示的类直接实现的接口
        System.out.println( Arrays.toString( cla.getInterfaces() ) );

        String s = c.convert( 1000, 16 );
        System.out.println( s );

    }

}
